A business process is a sequence of steps executed by a set of users where each step is assigned to a specific user. In FIG. 1, the business process 1 consists of Step A, Step B, Step C and Step D. To execute the business process 1, a person is assigned to execute Step A, another person is assigned to Step B, etc. The business process 1 may have a written procedure but it does not have a mechanism to assure that the steps are executed in the prescribed sequence. A workflow system can use a route, a sequence of workflow nodes, to control and track a business process by mapping the sequence of business process steps to a corresponding sequence of nodes in the workflow route and assigning to each node the user responsible for execution of the business process step. In FIG. 1, the workflow route 2 consists of Node A corresponding to business process 1 Step A, Node B corresponding to Step B, etc. Each node 3 is assigned a user 5 and provides a user screen 4 or set of screens to accomplish the business process step. The workflow route begins execution when “Start” initiates and passes “control” to the first node in the route. When control is passed to a node, the node 3 activates the screen 4 for the assigned user 5. The assigned user 5 uses the screen 4 to accomplish the business process step. When the user 5 has completed the process provided by the screen 4, control is passed to the next node in the route. Control is passed in the sequence of nodes designated by the route until a node passes control to “Complete” which terminates the execution of the workflow route. To be effective in controlling and tracking a specific business process, the workflow route must match the flow of the business process and assign the appropriate people as users for each node. Creating the route requires an understanding of the business process and the people who execute each of the process steps. FIG. 2 illustrates the route creation or route generation process. Each node 3 must be defined to execute the appropriate business process step, the nodes must be placed in the proper sequence to accomplish the business process, and the users must be selected for each node. The users may be selected from a list of candidates 6 for each node. The sphere of knowledge 7 or domain of the specific business process and the potential users illustrates what needs to be understood to generate the route. Route creation can take significant effort. Workflow systems have been very successful when applied to business processes that are well defined and do not have high variability.
Workflow technology supports conditional branching and parallel processing functions to support most business processes. The route can contain nodes that permit conditional branching to support business processes that require decision to be made and different sub-processes executed based on the decision. For example, a travel expense payment business process may require that the manager of the travel expense originator approve a travel expense. If approved, the travel expense is paid and if not approved, the travel expense is sent back to the originator. The workflow route can be divided into segments called sub-routes. A sub-route to support the manager approval portion of the travel expense business process would provide a node with a screen for the manager to view the travel expense and to respond either “APPROVE” or “NOT APPROVE” using labeled buttons on the screen. Based on the response, the workflow route would branch to the appropriate sub-route: if “APPROVE”, then a sub-route that sends the travel expense to accounts payable is activated; if “NOT APPROVE”, then a sub-route that sends the travel expense to the originator is activated. The route can contain a node that activates two or more sub-routes in parallel. In the travel expense example, the “APPROVE” sub-route could be augmented to send the travel expense to accounts payable and in parallel send a copy to the originator (so she or he can know that the expense has been approved). This is called a “fork” using parallel processing terminology. There is a complementary node called a “join” where parallel sub-routes converge to become a single sub-route.
In general, the route is generated before the route is used by the workflow system. That is, the specific sequence of nodes and users are assigned before the business process begins execution. However, the information in the business process may determine that an alternative sub-process with corresponding workflow sub-route should be used or that another user should be processing a particular business process step with corresponding workflow node. If the number of choices and the number of choice points are low, it may be possible to construct a route structure with conditional branches to cover all possibilities. This will cover many simple business processes. But many business processes in large organizations cannot be covered with a route that is constructed a priori.
For example, a contract manufacturing company, called a CM, manufactures computers system for a global computer design and marketing company, called an Original Equipment Manufacturer or OEM. Examples of CM's are Solectron, Flextronics, and Sanmina. Examples of OEM's are IBM, Cisco, and Sun. The OEM requests a quotation from the CM to build a specific computer system and sends the CM a quotation package that has the description of the computer system and expected volume of units to be manufactured. The CM is to build the product in four regions: Europe, Asia, North America, and South America. Within each region are manufacturing plants that specialize in building the electronics, the frame, the power supplies, assemble and test the completed units, etc. The interface between the CM and the OEM is a global account manager who is responsible for getting the quotation completed and back to the OEM. The global account manager has a general understanding of the capabilities of each region and the key manufacturing plants in each region but does not know the specific people to whom the quotation package should be sent. The global account manager does know the region account managers in each region who in turn know the key people in each manufacturing plant who in turn know the specific individuals who should work on their portion of the quotation. But the global account manager makes the assignment of the quotation package based on the type of computer system to be built and the volumes that are assigned to each region. The region account manager will assign portions of the package to specific manufacturing plants based on the manufacturing processes and capacity at each plant. Within each plant are the key people who know the individuals who should work on the quotation. Each plant may have a set of different manufacturing processes and thus a set different quotation processes corresponding to the local plant capabilities. A workflow route for this quotation example would be very difficult to create a priori since much of the route needs to be determined by both the contents of the quotation package and the capabilities and capacities of each plant. Maintaining the route is also a formidable task since all of these elements plus the individuals at each plant are always changing.
The prior art provides means for defining sub-routes, defined segments, which may be managed independently and joined to form a larger route structure. However, the prior art does not suggest how these may solve the issues of adapting the route to the business process requirements in the cited example.
The prior art also provides means for changing the flow of the process in an ad hoc manner by permitting the control to flow “off the route” to users out of the sequence as defined by the route or even to users who are not on the route. These means do not provide control of the business process. What is desired is that the flow of control be itself be constrained to a set of predefined sub-routes in response to the needs of a business process during the execution of the route. The selection of the sub-routes and the creation of the resulting composite route is done at run-time in response to the business process and the information used in the business process.
Route generation requires that the person creating the route have knowledge of the specific business process steps and the population of users that may be assigned to each step. Route generation by one person (or a small group) is effective for small organizations where a person can know both the business process steps and the individual user who should be assigned to a step. However, the route generation in a large organization can be difficult since no single person has the knowledge to determine the assignment of users to business process steps. The user assignment problem may be compounded by the need to assign users based on the information being processed by the business process. That is, the users in the route cannot be established as a static route but must be altered based on the actual information processed. For example, the business process may be for processing customer requests but it may be difficult to determine a priori the users required for each specific customer request. FIG. 3 illustrates three similar but different routes where there is a route 10 for Customer request type 1, route 11 for Customer request type 2, and route 12 for Customer request type 3. Each customer request type has a different business process and the users assigned in each process depend on the information in the customer request. The appropriate user for each process step and node is selected from a list of candidates 6 associated with each node. In a small organization, a person could select the appropriate route and users to respond to the customer request before starting the business process. However in a larger organization, this may be difficult to do since no one person can know who should respond to a specific customer request. In addition to selecting the appropriate user, it may be the case where each sub-organization in a large organization has a different sub-business process to respond to a customer request so not only is the user assignment based on customer request, the sub-process may be different based on the sub-organization selected to respond. In addition, the users in a large organization change, user assignments change, and business sub-process change. Maintaining routes and administering the user population on a complete organization basis for a large organization can be difficult if not impossible. Plus, many organizations are now virtual in that the sub-organizations may belong to separate companies but customers expect the requests to have responses as though they were from a single organization. Underlying the route generation issues are still the requirements that the workflow control and track the business process and that the route adapt to the specifics of the business process, which may depend on the information used in the process. In effect, custom routes need to be generated for each use. Route generation under these conditions cannot be an off-line, a priori process but now part of the business process execution and must be executed in a controlled and timely manner as part of the total response to the customer.
What is desired is a means to create a route during the execution of a business process to support the business process in an organization where the sub-organization business processes and assignment of users are dependent on the business data for that particular use of the route. In addition, the definitions of the sub-processes are controlled by the sub-organizations and thus, the definition of the sub-routes and the assignments of users must also be controlled by the sub-organizations.